package old.day20190318.drivermanager;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

/**
 * @author DingZhenYun
 * @create 2019-03-18 10:36
 */
public class TestDemo {
    public static void main(String[] args) throws Exception {
        //testDriverManager();
        System.out.println(new TestDemo().getConnection2());
    }



    public Connection getConnection2() throws Exception{
        //1. 准备连接数据库的 4 个字符串.
        //1). 创建 Properties 对象
        Properties properties=new Properties();
        //2). 获取 jdbc.properties 对应的输入流
        InputStream is=getClass().getClassLoader().getResourceAsStream("jdbc.properties");

        //3). 加载 2） 对应的输入流
        properties.load(is);
        //4). 具体决定 user, password 等4 个字符串.
        String driver=properties.getProperty("driver");
        String jdbcUrl=properties.getProperty("jdbcUrl");
        String password=properties.getProperty("password");
        String user=properties.getProperty("user");
        //2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块.)
        Class.forName(driver);
        //3. 通过 DriverManager 的 getConnection() 方法获取数据库连接.
        return DriverManager.getConnection(jdbcUrl,user,password);
    }
    private static void testDriverManager() throws Exception {
        /**
         * DriverManager 是驱动的管理类.
         * 1). 可以通过重载的 getConnection() 方法获取数据库连接. 较为方便
         * 2). 可以同时管理多个驱动程序: 若注册了多个数据库连接, 则调用 getConnection()
         * 方法时传入的参数不同, 即返回不同的数据库连接。
         * @throws Exception
         */
        //1. 准备连接数据库的 4 个字符串.
        //驱动的全类名.
        String driverClass = "com.mysql.jdbc.Driver";
        //JDBC URL
        String jdbcUrl = "jdbc:mysql://localhost:3307/zhihu";
        //user
        String user = "root";
        //password
        String password = "123456";

        //2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块.)
        Class.forName(driverClass);

        //3. 通过 DriverManager 的 getConnection() 方法获取数据库连接.
        Connection connection =
                DriverManager.getConnection(jdbcUrl, user, password);
        System.out.println(connection);
    }
}
